﻿using WH.Contracts.Systems.Menus;
using WH.Model.Systems;
using WH.Services.BaseService;
using Rw.Core.Common.Paging;
using WH.Common.Paging;
using System.Linq.Expressions;

namespace WH.Services.IServices.ISystem
{
    public interface IMenuService : IBaseService<MenuEntity>
    {
        Task<IList<AuthOutputDto>> GetAllAuthAsync();

        Task<IList<MenuOutputDto>> GetMenusAsync(MenuFilter filter);

        Task<IList<MenuOutputDto>> GetMenusAsync(Expression<Func<MenuEntity, bool>>? predicate = default);

        Task<IPagedList<MenuOutputDto>> GetMenusByPageAsync(PageParam pager, MenuFilter filter);
    }
}
